// 1、导入
const express = require('express');
// 2、创建
const app = express();
// 想要让req.body接收到请求体参数，需要配置一行代码
app.use(express.urlencoded({extended: false}))
// 导入数据库操作模块
const db = require('./database/index');


// 3、书写端口 - 注册端口
app.post('/app/reguser',(req,res) => {
    // 后端接收post请求体参数：req.body；把请求体参数防盗对象里面
    // console.log(req.body);
    let { username, password} = req.body;


    // 定义sql语句，根据用户名查询用户是否存在
    let sql = `select * from user where username="${username}"`;
    db(sql,(err,results) => {
        // 判断sql语句
        if(err) {
            return res.send({ status: 1, msg: 'sql语法错误：' + err.message})
        }
        // 判断有没有查到已存在的用户名
        if(results >= 1) {
            return res.send({status: 1, msg: '用户名已存在，请更换用户名！'})
        }

        // 下载utility: npm i utility@1.17.0
        // 导入utility，加密密码
        const utility = require('utility');
        password = utility.md5(password);


        // 在执行sql语句里面 - 添加用户
        let sql = `insert into user set username="${username}",password="${password}"`
        db(sql,(err,results) => {
            // 判断
            if(err) {
                return res.send({status: 1, message: 'sql语句错误：' + err.message})
            }
            // 判断结果
            if(results.affectedRows !== 1) {
                return res.send({status: 1,message: "添加失败！"})
            }
            // 返回响应成功的数据
            res.send({status: 0, message: '注册成功！'})
        })
        // 模拟注册功能完成
        // res.send({status: 0, msg: '注册功能完成...'})
    })
    // Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    // res.send('注册功能完成...')
})


// 4、启动服务
app.listen(3006,function() {
    console.log('http://localhost:3006');
})